As electronic components have continued to become smaller and less expensive, laptop, handheld, and other portable computers have become more and more popular. Although a variety of applications can be used with such computers, personal information managers (PIMs) form an important category of application programs that are particularly suited for use with portable computers or other portable information devices.
To get the most benefit from a PIM on a portable device, it is very useful if the PIM information can be kept up to date with a PIM that a user uses in conjunction with his or her desktop computer. Many portable computers are designed to connect with a desktop and to exchange information. When compatible PIMs are used on a portable computer and a desktop computer, it is possible to use this connectivity to update the PIMs so that the latest updates made by a user on one PIM are also reflected in the other PIM. This is referred to as “synchronization.”
There are many competing desktop PIM applications on the market today. Each of them uses very different data formats. It is imperatively important for a portable device to be able to synchronize its data with each of these PIM applications. This requires a flexible and extensible architecture such that a synchronization software module can be easily written for a particular PIM application.
In contrast to previous methods of synchronizing PIMs, the inventors have developed a versatile system that allows a PIM on a portable computer to be synchronized with a great variety of desktop PIMs. An important advantage of the invention is that neither PIM component is required to track changes. Rather, this is taken care of by software components that are independent of the PIMs. These independent components can be used in conjunction with a number of different PIMs or similar database programs. Another important advantage of the invention is that it makes no assumption on the format of the data that are transferred between two computers. Therefore, the developer of a synchronization module has the total freedom to use different data formats depending only on specifics of the particular PIM application.